import 'dart:ffi';

import 'package:flutter/material.dart';
import 'package:flutter_trip/dao/Home_dao.dart';
import 'package:flutter_trip/model/home_model.dart';
import 'navigator/tab_navigator.dart';

import 'dart:convert' as convert;
import 'package:http/http.dart' as http;
void main() {
  runApp(const MyApp());
}

// class MyApp extends StatefulWidget {
//   const MyApp({super.key});
//
//   @override
//   State<MyApp> createState() => _MyAppState();
// }
//
//
//
// class _MyAppState extends State<MyApp> {
//   String result = "";
//   @override
//   Widget build(BuildContext context) {
//     return MaterialApp(
//       home: Scaffold(
//         appBar: AppBar(title: Text('network')),
//         body: FutureBuilder<commendmodel>(
//           future: fetchPost(),
//           builder: (BuildContext context, AsyncSnapshot<commendmodel> snapshot){
//              switch (snapshot.connectionState){
//                case ConnectionState.none:
//                  return Text('url start');
//                case ConnectionState.waiting:
//                  return Text("url waiting");
//                case ConnectionState.active:
//                  return Text('url active');
//                case ConnectionState.done:
//                   if (snapshot.hasError){
//                     return Text("${snapshot.hasError}");
//                   }else {
//                     var value = snapshot.data;
//                      return Container(
//                        color: Colors.red,
//                        child: Text("请求结果\n icon:${value?.icon}\n title:${value?.title}\n url:${value?.url}\n statusBarColor:${value?.statusBarColor}\n hideAppBar:${value?.hideAppBar}\n test:${value?.test}"),
//                      );
//                   }
//                default:
//                    return Text('');
//              }
//
//           },
//         ),
//         // body: Column(
//         //   children: [
//         //     InkWell(
//         //       onTap: (){
//         //         fetchPost().then((commendmodel value){
//         //           setState(() {
//         //             result = "请求结果\n icon:${value.icon}\n title:${value.title}\n url:${value.url}\n statusBarColor:${value.statusBarColor}\n hideAppBar:${value.hideAppBar}\n test:${value.test}";
//         //           });
//         //         });
//         //       },
//         //       child:  Text('点我'),
//         //     ),
//         //     Container(
//         //       child: Text(result),
//         //     )
//         //   ],
//         // ),
//       ),
//     );
//   }
//
//   Future<commendmodel> fetchPost() async{
//     final url = Uri.parse('http://www.devio.org/io/flutter_app/json/test_common_model.json');
//     final response = await http.get(url);
//     // convert.Utf8Decoder
//     final result = convert.jsonDecode(response.body) as Map<String, dynamic>;
//     // final result = convert.JsonDecoder(convert.Utf8Decoder(allowMalformed:true).c);
//     return commendmodel.fromJson(result);
//
//   }
// }
//
//
// class commendmodel {
//   final String? icon;
//   final String? title;
//   final String? url;
//   final String? statusBarColor;
//   final bool? hideAppBar;
//   final String? test;
//
//   commendmodel(
//       {this.icon, this.title, this.url, this.statusBarColor, this.hideAppBar, this.test});
//
//   factory commendmodel.fromJson(Map<String, dynamic> json){
//     return commendmodel(
//       icon: json['icon'] ?? "",
//       title: json['title'] ?? "",
//       url: json['url'] ?? "",
//       statusBarColor: json['statusBarColor'] ?? "",
//       hideAppBar: json['hideAppBar'] ?? false,
//       test: json['test'] ?? "zr",
//     );
//   }
// }


class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}


class _MyAppState extends State<MyApp> {
  @override
  void initState() {
    // TODO: implement initState
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      // home: const MyHomePage(title: 'Flutter Demo Home Page'),
      home: TabNavigator(),
    );
  }
}



// class MyApp extends StatelessWidget {
//   const MyApp({super.key});
//
//   // This widget is the root of your application.
//
//   @override
//    initState() async {
//     super.initState();
//
//   }
//
//   @override
//   Widget build(BuildContext context) {
//     return MaterialApp(
//       title: 'Flutter Demo',
//       theme: ThemeData(
//         colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
//         useMaterial3: true,
//       ),
//       // home: const MyHomePage(title: 'Flutter Demo Home Page'),
//       home: TabNavigator(),
//     );
//
//   }
// }
//
// class MyHomePage extends StatefulWidget {
//   const MyHomePage({super.key, required this.title});
//
//   // This widget is the home page of your application. It is stateful, meaning
//   // that it has a State object (defined below) that contains fields that affect
//   // how it looks.
//
//   // This class is the configuration for the state. It holds the values (in this
//   // case the title) provided by the parent (in this case the App widget) and
//   // used by the build method of the State. Fields in a Widget subclass are
//   // always marked "final".
//
//   final String title;
//
//   @override
//   State<MyHomePage> createState() => _MyHomePageState();
// }
//
// class _MyHomePageState extends State<MyHomePage> {
//   int _counter = 0;
//
//   void _incrementCounter() {
//     setState(() {
//       // This call to setState tells the Flutter framework that something has
//       // changed in this State, which causes it to rerun the build method below
//       // so that the display can reflect the updated values. If we changed
//       // _counter without calling setState(), then the build method would not be
//       // called again, and so nothing would appear to happen.
//       _counter++;
//     });
//   }
//
//   @override
//   Widget build(BuildContext context) {
//     // This method is rerun every time setState is called, for instance as done
//     // by the _incrementCounter method above.
//     //
//     // The Flutter framework has been optimized to make rerunning build methods
//     // fast, so that you can just rebuild anything that needs updating rather
//     // than having to individually change instances of widgets.
//     return Scaffold(
//       appBar: AppBar(
//         // TRY THIS: Try changing the color here to a specific color (to
//         // Colors.amber, perhaps?) and trigger a hot reload to see the AppBar
//         // change color while the other colors stay the same.
//         backgroundColor: Theme.of(context).colorScheme.inversePrimary,
//         // Here we take the value from the MyHomePage object that was created by
//         // the App.build method, and use it to set our appbar title.
//         title: Text(widget.title),
//       ),
//       body: Center(
//         // Center is a layout widget. It takes a single child and positions it
//         // in the middle of the parent.
//         child: Column(
//           // Column is also a layout widget. It takes a list of children and
//           // arranges them vertically. By default, it sizes itself to fit its
//           // children horizontally, and tries to be as tall as its parent.
//           //
//           // Column has various properties to control how it sizes itself and
//           // how it positions its children. Here we use mainAxisAlignment to
//           // center the children vertically; the main axis here is the vertical
//           // axis because Columns are vertical (the cross axis would be
//           // horizontal).
//           //
//           // TRY THIS: Invoke "debug painting" (choose the "Toggle Debug Paint"
//           // action in the IDE, or press "p" in the console), to see the
//           // wireframe for each widget.
//           mainAxisAlignment: MainAxisAlignment.center,
//           children: <Widget>[
//             const Text(
//               'You have pushed the button this many times:',
//             ),
//             Text(
//               '$_counter',
//               style: Theme.of(context).textTheme.headlineMedium,
//             ),
//           ],
//         ),
//       ),
//       floatingActionButton: FloatingActionButton(
//         onPressed: _incrementCounter,
//         tooltip: 'Increment',
//         child: const Icon(Icons.add),
//       ), // This trailing comma makes auto-formatting nicer for build methods.
//     );
//   }
// }
